Ir ao conteúdo
  • Cadastre-se

Clipper


Visitante

Posts recomendados

Caros programadores,

sou novo na programação e tenho a seguinte dúvida.

Onde trabalho tenho um programa que trabalha com arquivo .dbf, até aqui tudo normal.

Pedi ao CPD o arquivo para atualizaçòes e disseram para tirar da nossa intranet.  Só que o arquivo é .TXT. Sei que para a atualizaçào dos campos do meu DBF antigo tenho de fazer uso de substrigs, mas como ler as linhas, onde estão todos os dados de um registro?

Obrigado,

Paulo

Link para o comentário
Compartilhar em outros sites

Antes de mais nada; esqueça as substrings para esta situação.

cara, vamos ver se eu entendi ... você tá querendo converter um txt para dbf não é ?

Se for isso faz assim:

Crie um dbf contendo a definição dos campos:

Exemplo:

Nome do arquivo: ARQ.DBF

Campo    Tipo       Tam      Dec

---------------------------------

Codigo       N         7         0

Nome        C          20       0

Idade        N          2        0

O seu TXT deveria estar assim

Nome do arquivo: TEXTO.TXT

1234567AAAAAAAAAAAAAAAAAAAA15

1111111BBBBBBBBBBBBBBBB          18

2222222FULANO DE TAL               20

Faça um programinha em Clipper com as seguintes linhas:

* Inicio do programa

USE ARQ

APPEND FROM TEXTO.TXT SDF

USE

* Fim do programa

Se não tiver experiência em programação, recomendo usar o DBU do próprio CLIPPER. (Se quiser eu envio)

Com o DBU você cria o DBF e converte o arquivo TXT para DBF sem ter que fazer nenhum programa.

Espero não ter sido muito técnico; qualquer coisa, email-me.

[ ]'s Rogério

Link para o comentário
Compartilhar em outros sites

Caro Paulo !!!

1º você precisa conhecer os nomes dos campos para atualizar no DBF. Depois crie uma rotina que use o DBF, leia o TXT e grave as informações no DBF. É simples:

use arquivo.dbf

index on indice to indice

txt=memoread("arquivo.txt")

for i= 1 to mlcount(txt)

    linha_atual=memoline(txt,i,tamanho_inicial, tamanho_final)

    var_campo_1=substr(linha_atual,tam_inicial,tam_final)

    var_campo_2=substr(linha_atual,tam_inicial,tam_final)

    ......

    apped blank

    replace campo1 with var_campo_1

    replace campo2 with var_campo_2

    ....

next

e está pronto !!!

Dê uma consultada nos comandos memoline() e substr() que não me recordo direito de todos os parâmetros ! Em caso de caracteres numéricos, use a função strzero() ( Se o número tiver que ser gravado como texto no dbf ) !

Qualquer dúvida, e-mail me !

[email protected]

Espero ter te ajudado !  :)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!